﻿using Logger4Net;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Hubberly
{
   public partial class DialogGetString : Form
   {
      //////////////////////////////////////////////////////////////////////////
      //
      public DialogGetString()
      {
         InitializeComponent();
         result_ = label_ = title_ = string.Empty;
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private void btnOK_Click(object sender, EventArgs e)
      {
         result_ = txtString.Text;
         DialogResult = DialogResult.OK;
         Close();
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private void btnCancel_Click(object sender, EventArgs e)
      {
         DialogResult = DialogResult.Cancel;
         Close();
      }
   
      //////////////////////////////////////////////////////////////////////////
      //
      public string label
      {
         get { return label_; }
         set { lblString.Text = label_ = value; }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      public string result
      {
         get { return result_; }
         set { txtString.Text = result_ = value; }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      public string title
      {
         get { return title_; }
         set { Text = title_ = value; }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      public delegate bool CheckValue(string text);
      public CheckValue checkValue
      {
         get { return checkValue_; }
         set { checkValue_ = value; }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private void txtString_TextChanged(object sender, EventArgs e)
      {
         try
         {
            if (null != checkValue_)
            {
               btnOK.Enabled = checkValue_(Text);
            }
         }
         catch (System.Exception ex)
         {
            logger_.exception(ex);
         }
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private void DialogGetString_Shown(object sender, EventArgs e)
      {
         Text = title;
         txtString.Text = result;
         lblString.Text = label;
      }

      //////////////////////////////////////////////////////////////////////////
      //
      private string label_;
      private string result_;
      private string title_;
      private CheckValue checkValue_;
      private static Logger logger_ = new Logger(typeof(DialogGetString));
   }
}
